# settings/router.py
# database router to multiple database by app label

class DatabaseRouter(object):
    # 应用的label
    router_app_labels = {'running'}

    # 对于特定的Modal，在读操作的时候，访问哪个数据库，这个数据库路由到哪里
    def db_for_read(self, model, **hints):
        if model._meta.app_label in self.router_app_labels:
            return 'running'
        return 'default'

    # 写model写入哪个数据库，这个数据库路由到哪里
    def db_for_write(self, model, **hints):
        if model._meta.app_label in self.router_app_labels:
            return 'running'
        return 'default'

    # 对于特定的model，不允许表之前相互有关系，不允许跨数据库的查询
    def allow_relation(self, obj1, obj2, **hints):
        return None
    
    def allow_migrate(self, db, app_label, model_name=None, **hints):
        """
        遗留数据库中的表不允许迁移
        """
        if app_label in self.router_app_labels:
            return False
        return True